iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 12
0
Software Development

轉職初新者系列-C#初學攻略心法系列 第 12

[2018鐵人賽Day12]C#初學攻略心法-尼瑪的,變異計算骷顱王

  • 分享至 

  • xImage
  •  

上次從碎金洞窟出來,那讓我們在殺上去吧!
上吧,「蛟」使用水冥波動、「辰巳」雷動震天!
沿途廝殺、不讓路擋路者,我不介意送你們一程

史書記載:「勇者歷018年,勇者整裝完畢,前行到碎金洞窟,所經之路,血流成河。
雞不拉屎,鳥不生蛋,寸草不生,生靈塗炭」
(呃,是妖魔...)

(過了一會)

呃...突然有龐然大物出現,排山倒海而來,這啥小
圖鑑突然響起(哪時冒出圖鑑的...這不是Pokemon,也不是Digimon啊!!)
工程惡魔型,變異計算骷顱王

內心無限的OS,這一瞬間我只有四個字,「這,是,啥,小」!
變異就算了,還計算...
惡魔就算了,還工程...

你才是惡魔,你全家都是惡魔啦!
尼瑪的,我才加強戰力而已,給我個智能型的,這還怎打...

這次,只要你能做出個C#的簡易計算機,就算我輸!
勇者,敗在我的手下吧

啥?你說啥?我沒聽得很清楚
你才要敗,你全家都要敗給我啦!

==============================

[Step by Step簡易實戰]
Step1.
請建立個新方案為calculate方案

Step2.
先從工具箱拉出個Button,並複製九個Button
並修改屬性的Text值為"1","2","3","4","5","6","7","8","9","0"

接著,拉出個TextBox,並修改Text為0
字體大小改為18
ReadOnly改為true,使之不能輸入

https://ithelp.ithome.com.tw/upload/images/20171231/20091333aY5vJbnXAV.jpg

Step3.
接著把所有10個數字Button(0~9)一起圈選起來,選到屬性→事件→Click事件(buttonNumber_Click)
並編輯撰寫buttonNumber_Click內容

Button buttonNumber = sender as Button;

if (textBox1.Text == "0")
{
    textBox1.Text = buttonNumber.Text;
}
else
{
    textBox1.Text += buttonNumber.Text;
}

https://ithelp.ithome.com.tw/upload/images/20171231/20091333BwVO6oGZoW.jpg

https://ithelp.ithome.com.tw/upload/images/20171231/20091333TijaHmOIPm.jpg

Step4.
接著把4個運算Button(+ - * /)一起圈選起來,選到屬性→事件→Click事件(buttonMathematical_Click)
並編輯撰寫buttonMathematical_Click內容

//點擊的運算式時的動作
private void buttonMathematical_Click(object sender, EventArgs e)
{
    Button buttonMathematical = sender as Button;
    mathematical = buttonMathematical.Text; //記錄所點擊的運算式
    beforeValue = textBox1.Text; //記錄使用者輸入前一個值的內容
    textBox1.Text += buttonMathematical.Text;
}

https://ithelp.ithome.com.tw/upload/images/20171231/20091333CSSqgKWFQ6.jpg

https://ithelp.ithome.com.tw/upload/images/20171231/200913337ToHhMILJo.jpg

Step5.
點擊「=」Button,選到屬性→事件→Click事件,在Click事件點擊兩下自動生成事件名稱
並編輯撰寫Click事件內容

Double GetBeforeValue = Double.Parse(beforeValue);
Double GetAfterValue = Double.Parse(textBox1.Text);
Double Result = 0;

switch (mathematical)
{
    case "+":
        Result = GetBeforeValue + GetAfterValue;
        break;
    case "-":
        Result = GetBeforeValue - GetAfterValue;
        break;
    case "*":
        Result = GetBeforeValue * GetAfterValue;
        break;
    case "/":
        Result = GetBeforeValue / GetAfterValue;
        break;
}

textBox1.Text = Result.ToString();

https://ithelp.ithome.com.tw/upload/images/20171231/20091333C0OfcUnJ9Y.jpg

https://ithelp.ithome.com.tw/upload/images/20171231/20091333TtbuKRu1q5.jpg

Step6.
好像還差個清除(歸零)按鈕,來讓我們在設計介面新增一個Clear Button吧
並在Button點擊兩下,撰寫清除(歸零)的Code

textBox1.Text = "0";

https://ithelp.ithome.com.tw/upload/images/20171231/200913339syzr9luB7.jpg

https://ithelp.ithome.com.tw/upload/images/20171231/20091333edTgws8eVp.jpg

Step7.
按下F5執行程式,測試看看是否功能正確吧

https://ithelp.ithome.com.tw/upload/images/20171231/20091333JWVUU3L9z6.jpg

==============================

好好的接受我的怒火吧,變異計算骷顱王
這就是我這次的攻擊!!


上一篇
[2018鐵人賽Day11]C#初學攻略心法-箱子的進階奧秘
下一篇
[2018鐵人賽Day13]C#初學攻略心法-通關,偷懶一下
系列文
轉職初新者系列-C#初學攻略心法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Gifer
iT邦新手 5 級 ‧ 2019-08-28 10:17:05

沒有宣告的 2個變數
string mathematical = null;
string beforeValue = null;

另外
private void ButtonMathematical_Click(object sender, EventArgs e)
{
.............
//textBox1.Text += buttomMathematical.Text;
正確是
textBox1.Text = "";

我要留言

立即登入留言